World carbon pricing database: sources and methods

This note describes the sources and methods used to construct the World Carbon Pricing Database (WCPD). This database contains a harmonized record of the sectoral coverage and prices associated with carbon pricing mechanisms implemented worldwide at the national and subnational levels over the period 1990–2020. The dataset follows IPCC 2006 sectoral disaggregation, which allows for a straightforward integration with other datasets following the same structure.


SI1 Dataset content
string tax*_rate_excl_clcu Tax rate in current local currency unit (LCU) per ton of CO2 equivalent.
[0,) float tax*_ex_rate Rate of exemption applicable (e.g., 0.1 if a 10 percent reduction on the full rate applies); 0 if no exemption applies to that entry.
[0,1] float tax*_rate_incl_ex_clcu Net tax rate (accounting for exemption) in current LCU per ton of CO2 equivalent.
[0,) float tax*_curr_code 3-letter ISO code of the currency in which the tax rate is recorded (e.g., EUR for euro).
string ets*_id Identifier of the applicable emissions trading system -string

ets*_price
Price of an emissions allowance in current local currency unit per ton of CO2 equivalent.
[0,) float ets*_curr_code 3-letter ISO code of the currency in which the allowance price is recorded (e.g., EUR for euro) -string Note: The * in the variable names is a wildcard substituting for "" or "_2". As such, it allows to refer to identical columns for different implemented mechanisms at once.

SI3 Coding rules
-Price differences within fuel type aggregates: Different tax rates may apply to different fuels within the main fuel categories (i.e., coal/peat, natural gas, oil). This comes in the form of differentiated applicable tax rates or varying exemption rates, such as for Mexico. In such cases, the value in the dataset is the highest rate applicable to the fuel category. The fueland/or sector-fuel-specific rates are recorded in the *scheme notes* for each scheme. -Encoding of partial and full sectoral exemptions: If a sector is fully exempted from a given pricing mechanism, the coverage variable value is set to 0 for the sector (and all fuel categories, when relevant). If only a specific fuel type within a sector is exempted (partially or totally), then the coverage variable value is set to 1 for the sector (and all fuel categories, when relevant) and the tax_exemption_rate variable value is set to the value corresponding to the level of the exemption (which is 1 if exemption is total). -Price rebates exemptions: If the exemption varies within the sector-fuel level, the highest exemption rate is recorded. For example, farmers in Alberta can receive up to 100 percent carbon levy rebates, depending on their eligibility. In such cases, the coverage variable in the corresponding row of the dataset and the exemption rate are set to 1. -Currency of price record in multi-jurisdiction mechanisms: When a jurisdiction (or some sectors therein) is part of a multi-jurisdiction mechanisms, the price is expressed in the common currency of the mechanism and the recorded currency code is consistent with that currency. For instance, for the California-Quebec(-Ontario) cap-and-trade system, the price of allowances is expressed in US dollars (USD). -Recording prices in incomplete years: if a mechanism was not in place for the entirety of a given year, a price (tax rate or allowance price) "pro-rata tempore" is calculated; the recorded price is a weighted average of all prices to which emissions were subjected throughout the year. This applies to all years apart from years in which a mechanism was first introduced. In that case, the recorded price and coverage are recorded "as if" it had been applied from January 1 of that year. -Multiple mechanisms: when two mechanisms apply to the same sector, information on both mechanisms is recorded through additional columns in the dataset. -Coverage records of IPCC sectors that are exclusively sources of non-CO2 GHG emissions: if a policy instrument that targets CO2 emissions also covers other Kyoto GHG, then all IPCC sectors covered by that instrument are recorded. However, information about instruments that exclusively target non-CO2 GHG emissions has not yet been recorded.
-Partial price rebates on certain emissions within sectors: In some cases (e.g., the Ireland carbon tax), the tax does not cover all emissions of a sector and a rebate is granted on emissions covered by the tax. If so, a combination of (i) the share of emissions it applies to (cf_co2) and (ii) the exemption rate allows to accurately record the instance.

Raw data
Scope: coverage information in encoded in the ets_scope*.py and taxes_scope*.py files. The structure of these records is described below: -

Prices:
When price data is manually encoded, it is saved in individual (i.e., one per pricing mechanism) csv files. The file naming convention is [scheme_id]_prices.csv. Each file follows the same structure: • Carbon taxes: scheme_id, year, ghg, product, rate, currency_code, source, comment • ETSs: scheme_id, year, ghg, allowance_price, currency_code, source, comment When price data is retrieved from structured datasets, it is extracted directly from there and reformatted in the Python script.
Price (tax) exemptions: Exemptions are recorded manually by jurisdiction (not by pricing mechanism, as exemptions are, for the most part, jurisdiction rather than mechanism specific) in individual csv files. The file naming convention is [tax_ex_jurisdictionName].

Auxiliary files
-IPCC2006-IEA-category-codes.csv provides a mapping between IPCC sector names, their associated code and the corresponding International Energy Agency sector code. This latter file is particularly useful to update the dataset, as its .csv files only include IPCC sector codes. -scheme_identifiers.csv provides a correspondence between the names of pricing mechanisms' and their internal database identifier.